package com.nanhai.buddhist.college.module.study.dal.dataobject.studyadditionalcourses;

import com.github.yulichang.annotation.EntityMapping;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import com.nanhai.buddhist.college.framework.mybatis.core.dataobject.BaseDO;

/**
 * 选课管理 DO
 *
 * @author xqenzo@163.com
 */
@TableName("t_study_additional_courses")
@KeySequence("t_study_additional_courses_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StudyAdditionalCoursesDO extends BaseDO {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 学院ID
     */
    private String collegeId;
    /**
     * 课程名称
     */
    private String coursesName;
    /**
     * 限制人数
     */
    private Integer limitStudentCount;
    /**
     * 剩余人数
     */
    private Integer surplusNumber;
    /**
     * 学年
     *
     * 枚举 {@link TODO school_year 对应的类}
     */
    private String schoolYear;
    /**
     * 教室ID
     */
    private String classRoomId;
    /**
     * 时间范围
     */
    private String timeFrame;
    /**
     * 备注
     */
    private String remark;
    /**
     * 状态： 0-正常 1-禁用
     */
    private Integer status;

    /**
     * 专业字符逗号隔开
     */
    private String  professionStr;

    /**
     * 课程开课时间
     */
    private Date  curriculumStartTime;

    /**
     * 课程结束时间
     */
    private Date  curriculumEndTime;

    /**
     * 选课开始时间
     */
    private Date  selectStartTime;

    /**
     * 选课结束时间
     */
    private Date  selectEndTime;


    @TableField(exist = false)
    @EntityMapping(thisField = "id",joinField = "studyAdditionalCoursesId")
    private List<StudyAdditionalCoursesClassDO> list;

}
